home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1996-05-01 | 16.1 KB | 427 lines | [ TEXT/MPS ]
{ File: TextServices.p Contains: Text Services Manager Interfaces. Version: Technology: System 7.5 Release: Universal Interfaces 3.0d3 on Copland DR1 Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, send the file and version information (from above) and the problem description to: Internet: apple.bugs@applelink.apple.com AppleLink: APPLE.BUGS } {$IFC UNDEFINED UsingIncludes} {$SETC UsingIncludes := 0} {$ENDC} {$IFC NOT UsingIncludes} UNIT TextServices; INTERFACE {$ENDC} {$IFC UNDEFINED __TEXTSERVICES__} {$SETC __TEXTSERVICES__ := 1} {$I+} {$SETC TextServicesIncludes := UsingIncludes} {$SETC UsingIncludes := 1} {$IFC UNDEFINED __CONDITIONALMACROS__} {$I ConditionalMacros.p} {$ENDC} {$IFC UNDEFINED __TYPES__} {$I Types.p} {$ENDC} {$IFC UNDEFINED __EVENTS__} {$I Events.p} {$ENDC} {$IFC UNDEFINED __MENUS__} {$I Menus.p} {$ENDC} {$IFC UNDEFINED __AEDATAMODEL__} {$I AEDataModel.p} {$ENDC} {$IFC UNDEFINED __AEREGISTRY__} {$I AERegistry.p} {$ENDC} {$IFC UNDEFINED __COMPONENTS__} {$I Components.p} {$ENDC} {$IFC FOR_SYSTEM8_PREEMPTIVE } {$IFC UNDEFINED __TEXTOBJECTS__} {$I TextObjects.p} {$ENDC} {$IFC UNDEFINED __LOCALEOBJECTS__} {$I LocaleObjects.p} {$ENDC} {$IFC UNDEFINED __COLLECTIONS__} {$I Collections.p} {$ENDC} {$IFC UNDEFINED __HILISTTYPES__} {$I HIListTypes.p} {$ENDC} {$IFC UNDEFINED __HIWINDOWTYPES__} {$I HIWindowTypes.p} {$ENDC} {$ENDC} {$PUSH} {$ALIGN MAC68K} {$LibExport+} {$IFC FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE } CONST kTextService = 'tsvc'; { component type for the component description } kInputMethodService = 'inpm'; { component subtype for the component description } kTSMVersion = $0200; { Version of the Text Services Manager is 2.0 } kTextServiceVersion2 = 'tsv2'; { Interface type for V2 interfaces } { Standard collection tags } kInteractiveServicesTag = 'tmin'; kLocaleIDTag = 'loce'; kTextInputObjectTag = 'tiot'; kLocaleObjectRefTag = 'lobj'; kLocaleRefTag = 'lref'; kKeyboardInputMethodContextTag = 'kinp'; kKeyboardLocaleObjectRefTag = 'kilo'; kHandwritingInputMethodContextTag = 'hinp'; kHandwritingLocaleObjectRefTag = 'hilo'; kSpeechInputMethodContextTag = 'sinp'; kSpeechLocaleObjectRefTag = 'silo'; kPasswordModeTag = 'pwdm'; kRefconTag = 'refc'; kUseFloatingWindowTag = 'uswm'; kReadOnlyDocumentTag = 'isro'; kSupportsMultiInlineHolesTag = 'minl'; kProtocolVersionTag = 'nprt'; kTSMContextCollectionTag = 'tsmx'; { Standard tags for input method modes } kIMRomanInputMode = 'romn'; kIMPasswordInputMode = 'pasw'; kIMXingInputMode = 'xing'; kIMHuaInputMode = 'huam'; kIMPinyinInputMode = 'piny'; kIMQuweiInputMode = 'quwe'; kIMCangjieInputMode = 'cgji'; kIMJianyiInputMode = 'jnyi'; kIMZhuyinInputMode = 'zhuy'; kIMB5CodeInputMode = 'b5cd'; kIMKatakanaInputMode = 'kata'; kIMHiraganaInputMode = 'hira'; { Variant tags for the input modes } kIM2ByteInputMode = '2byt'; kIM1ByteInputMode = '1byt'; kIMDirectInputMode = 'dinp'; { Text Services LocaleObject Attributes } kNeedsInputWindow = 1; kHandlesUpdateRegion = 2; kHandlesGetRegion = 3; kHandlesPos2Offset = 4; kHandlesOffset2Pos = 5; kInPasswordMode = 6; kHandleMultipleHoles = 7; kDocumentIsReadOnly = 8; {$ENDC} {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED } CONST { Component Flags in ComponentDescription } bTakeActiveEvent = 15; { bit set if the component takes active event } bHandleAERecording = 16; { bit set if the component takes care of recording Apple Events <new in vers2.0> } bScriptMask = $00007F00; { bit 8 - 14 } bLanguageMask = $000000FF; { bit 0 - 7 } bScriptLanguageMask = $00007FFF; { bit 0 - 14 } { Low level routines which are dispatched directly to the Component Manager } kCMGetScriptLangSupport = $0001; { Component Manager call selector 1 } kCMInitiateTextService = $0002; { Component Manager call selector 2 } kCMTerminateTextService = $0003; { Component Manager call selector 3 } kCMActivateTextService = $0004; { Component Manager call selector 4 } kCMDeactivateTextService = $0005; { Component Manager call selector 5 } kCMTextServiceEvent = $0006; { Component Manager call selector 6 } kCMGetTextServiceMenu = $0007; { Component Manager call selector 7 } kCMTextServiceMenuSelect = $0008; { Component Manager call selector 8 } kCMFixTextService = $0009; { Component Manager call selector 9 } kCMSetTextServiceCursor = $000A; { Component Manager call selector 10 } kCMHidePaletteWindows = $000B; { Component Manager call selector 11 } {$ENDC} {$IFC FOR_SYSTEM8_PREEMPTIVE } TYPE TSMServiceSpecificationPtr = ^TSMServiceSpecification; TSMServiceSpecification = RECORD objectName: StringPtr; countPairs: ItemCount; pairs: NameValuePairPtr; END; { New opaque definitions for types } TSMContext = ^LONGINT; TSMServiceContextRef = ^LONGINT; {$ENDC} {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE } { New opaque definitions for types } TYPE TSMDocumentID = ^LONGINT; InterfaceTypeList = ARRAY [0..0] OF OSType; {$ENDC} {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED } { Text Service Info List } TYPE TextServiceInfoPtr = ^TextServiceInfo; TextServiceInfo = RECORD fComponent: Component; fItemName: Str255; END; TextServiceListPtr = ^TextServiceList; TextServiceList = RECORD fTextServiceCount: INTEGER; { number of entries in the 'fServices' array } fServices: ARRAY [0..0] OF TextServiceInfo; { Note: array of 'TextServiceInfo' records follows } END; TextServiceListHandle = ^TextServiceListPtr; ScriptLanguageRecordPtr = ^ScriptLanguageRecord; ScriptLanguageRecord = RECORD fScript: ScriptCode; fLanguage: LangCode; END; ScriptLanguageSupportPtr = ^ScriptLanguageSupport; ScriptLanguageSupport = RECORD fScriptLanguageCount: INTEGER; { number of entries in the 'fScriptLanguageArray' array } fScriptLanguageArray: ARRAY [0..0] OF ScriptLanguageRecord; { Note: array of 'ScriptLanguageRecord' records follows } END; ScriptLanguageSupportHandle = ^ScriptLanguageSupportPtr; {$ENDC} {$IFC FOR_SYSTEM8_PREEMPTIVE } { Low level TSMContext routines } FUNCTION NewTSMContext(VAR context: TSMContext; locale: LocaleRef; refcon: LONGINT): OSStatus; C; FUNCTION DeleteTSMContext(context: TSMContext): OSStatus; C; FUNCTION OpenTSMService(context: TSMContext; service: LocaleObjectRef): OSStatus; C; FUNCTION CloseTSMService(context: TSMContext): OSStatus; C; FUNCTION GetTSMService(context: TSMContext; VAR serviceSpec: TSMServiceSpecification; VAR service: LocaleObjectRef): OSStatus; C; FUNCTION NextTSMService(context: TSMContext; VAR service: LocaleObjectRef): OSStatus; C; FUNCTION GetTSMRefcon(context: TSMContext; VAR refcon: LONGINT): OSStatus; C; FUNCTION SetTSMRefcon(context: TSMContext; refcon: LONGINT): OSStatus; C; FUNCTION GetTSMLocale(context: TSMContext; VAR locale: LocaleRef): OSStatus; C; FUNCTION SetTSMLocale(context: TSMContext; locale: LocaleRef): OSStatus; C; FUNCTION GetSOMObjectFromTSMContext(context: TSMContext): Ptr; C; FUNCTION AddTSMContextCollectionItem(context: TSMContext; itemTag: CollectionTag; id: UInt32; itemSize: ByteCount; itemData: UNIV Ptr): OSStatus; C; FUNCTION GetTSMContextCollectionItemData(context: TSMContext; tag: CollectionTag; id: UInt32; sizeAllowed: ByteCount; VAR sizeReturned: ByteCount; itemData: UNIV Ptr): OSStatus; C; FUNCTION RemoveTSMContextCollectionItem(context: TSMContext; itemTag: CollectionTag; id: UInt32): OSStatus; C; {$ENDC} {$IFC FOR_SYSTEM8_COOPERATIVE } { Text Service Info List } TYPE InlineEditInfoPtr = ^InlineEditInfo; InlineEditInfo = RECORD fStart: UInt32; fEnd: UInt32; fText: TextObject; END; { New handler routines } FUNCTION SetTSMEnabled(state: BOOLEAN): OSStatus; C; FUNCTION SetTSMDocumentPasswordMode(idocID: TSMDocumentID; Enabled: BOOLEAN): OSStatus; C; FUNCTION AddTSMDocumentCollectionItem(idocID: TSMDocumentID; itemTag: CollectionTag; id: UInt32; itemSize: ByteCount; itemData: UNIV Ptr): OSStatus; C; FUNCTION GetTSMDocumentCollectionItemData(idocID: TSMDocumentID; tag: CollectionTag; id: UInt32; sizeAllowed: ByteCount; VAR sizeReturned: ByteCount; itemData: UNIV Ptr): OSStatus; C; FUNCTION RemoveTSMDocumentCollectionItem(idocID: TSMDocumentID; itemTag: CollectionTag; id: UInt32): OSStatus; C; FUNCTION ReleaseTSMDocumentInlineHoles(idocID: TSMDocumentID): OSStatus; C; { Low level TSMContext routines } FUNCTION FixTSMContext(context: TSMContext): OSStatus; C; FUNCTION ActivateTSMContext(context: TSMContext): OSStatus; C; FUNCTION DeactivateTSMContext(context: TSMContext): OSStatus; C; {$IFC FOR_PTR_BASED_AE } FUNCTION EditInlineRegion(context: TSMContext; VAR theEvent: AppleEvent): OSStatus; C; {$ENDC} FUNCTION ReleaseTSMContextInlineHoles(context: TSMContext): OSStatus; C; FUNCTION TSMContextUseFloatingWindow(context: TSMContext; useWindow: BOOLEAN): OSStatus; C; FUNCTION TSMContextSetPasswordMode(context: TSMContext; Enabled: BOOLEAN): OSStatus; C; FUNCTION GetTSMFeature(context: TSMContext; feature: UInt32): BOOLEAN; C; FUNCTION GetTSMHILayer: HILayerRef; C; { Text service developer API's } FUNCTION TSMRegisterMenu(context: TSMContext; VAR menu: HIMenu): OSStatus; C; {$IFC FOR_PTR_BASED_AE } FUNCTION GetTSMUpdateEvent(VAR theAppleEvent: AppleEventPtr; context: TSMContext; theText: TextObject; fixLen: LONGINT; updateRng: ReplaceRangeArrayPtr; hiliteRng: HiliteRangeArrayPtr; clauseRgn: ClauseOffsetArrayPtr; pinRange: TextRegionRangePtr; InlineHoleID: UInt32): OSStatus; C; FUNCTION GetTSMPosToOffsetEvent(VAR theAppleEvent: AppleEventPtr; context: TSMContext; point: Point; Dragging: BOOLEAN): OSStatus; C; FUNCTION GetTSMOffsetToPosEvent(VAR theAppleEvent: AppleEventPtr; context: TSMContext; offset: ByteOffset; InlineHoleID: UInt32): OSStatus; C; FUNCTION GetTSMGetRegionEvent(VAR theAppleEvent: AppleEventPtr; context: TSMContext; requestType: GetRegionClass; requestRange: GetRegionRangePtr; InlineHoleID: UInt32): OSStatus; C; FUNCTION GetTSMShowHideWindowEvent(VAR theAppleEvent: AppleEventPtr; context: TSMContext; showIt: BOOLEAN; InquireState: BOOLEAN): OSStatus; C; FUNCTION GetTSMServiceChangedEvent(VAR theAppleEvent: AppleEventPtr; context: TSMContext): OSStatus; C; FUNCTION GetTSMReplyEvent(VAR theAppleEvent: AppleEventPtr; context: TSMContext): OSStatus; C; FUNCTION AESendFromTSMService(context: TSMContext; {CONST}VAR theAppleEvent: AppleEvent; VAR reply: AppleEvent): OSStatus; C; {$ENDC} FUNCTION PostTSMText(context: TSMContext; text: TextObject): OSStatus; C; FUNCTION GetTSMFloatingWindowGlobalRect(context: TSMContext; VAR globalRect: Rect): OSStatus; C; {$ENDC} {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE } { High level TSM Doucment routines } FUNCTION NewTSMDocument(numOfInterface: INTEGER; VAR supportedInterfaceTypes: InterfaceTypeList; VAR idocID: TSMDocumentID; refcon: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7000, $AA54; {$ENDC} FUNCTION DeleteTSMDocument(idocID: TSMDocumentID): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7001, $AA54; {$ENDC} FUNCTION ActivateTSMDocument(idocID: TSMDocumentID): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7002, $AA54; {$ENDC} FUNCTION DeactivateTSMDocument(idocID: TSMDocumentID): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7003, $AA54; {$ENDC} FUNCTION SetTSMCursor(mousePos: Point): BOOLEAN; {$IFC NOT GENERATINGCFM} INLINE $7006, $AA54; {$ENDC} FUNCTION FixTSMDocument(idocID: TSMDocumentID): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7007, $AA54; {$ENDC} { Utilities } FUNCTION UseInputWindow(idocID: TSMDocumentID; useWindow: BOOLEAN): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7010, $AA54; {$ENDC} {$ENDC} {$IFC FOR_SYSTEM7_ONLY } { Redundant Utilities } FUNCTION SendAEFromTSMComponent({CONST}VAR theAppleEvent: AppleEvent; VAR reply: AppleEvent; sendMode: AESendMode; sendPriority: AESendPriority; timeOutInTicks: LONGINT; idleProc: AEIdleUPP; filterProc: AEFilterUPP): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700B, $AA54; {$ENDC} FUNCTION NewServiceWindow(wStorage: UNIV Ptr; {CONST}VAR boundsRect: Rect; title: Str255; visible: BOOLEAN; theProc: INTEGER; behind: WindowPtr; goAwayFlag: BOOLEAN; ts: ComponentInstance; VAR window: WindowPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7011, $AA54; {$ENDC} FUNCTION CloseServiceWindow(window: WindowPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7012, $AA54; {$ENDC} FUNCTION GetFrontServiceWindow(VAR window: WindowPtr): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7013, $AA54; {$ENDC} FUNCTION FindServiceWindow(thePoint: Point; VAR theWindow: WindowPtr): INTEGER; {$IFC NOT GENERATINGCFM} INLINE $7017, $AA54; {$ENDC} FUNCTION SetDefaultInputMethod(ts: Component; VAR slRecordPtr: ScriptLanguageRecord): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700C, $AA54; {$ENDC} FUNCTION GetDefaultInputMethod(VAR ts: Component; VAR slRecordPtr: ScriptLanguageRecord): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700D, $AA54; {$ENDC} FUNCTION SetTextServiceLanguage(VAR slRecordPtr: ScriptLanguageRecord): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700E, $AA54; {$ENDC} FUNCTION GetTextServiceLanguage(VAR slRecordPtr: ScriptLanguageRecord): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700F, $AA54; {$ENDC} FUNCTION TSMEvent(VAR event: EventRecord): BOOLEAN; {$IFC NOT GENERATINGCFM} INLINE $7004, $AA54; {$ENDC} FUNCTION TSMMenuSelect(menuResult: LONGINT): BOOLEAN; {$IFC NOT GENERATINGCFM} INLINE $7005, $AA54; {$ENDC} FUNCTION InitTSMAwareApplication: OSErr; {$IFC NOT GENERATINGCFM} INLINE $7014, $AA54; {$ENDC} FUNCTION CloseTSMAwareApplication: OSErr; {$IFC NOT GENERATINGCFM} INLINE $7015, $AA54; {$ENDC} { Component Manager Interfaces to Input Methods } FUNCTION GetScriptLanguageSupport(ts: ComponentInstance; VAR scriptHdl: ScriptLanguageSupportHandle): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0004, $0001, $7000, $A82A; {$ENDC} FUNCTION InitiateTextService(ts: ComponentInstance): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0000, $0002, $7000, $A82A; {$ENDC} FUNCTION TerminateTextService(ts: ComponentInstance): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0000, $0003, $7000, $A82A; {$ENDC} FUNCTION ActivateTextService(ts: ComponentInstance): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0000, $0004, $7000, $A82A; {$ENDC} FUNCTION DeactivateTextService(ts: ComponentInstance): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0000, $0005, $7000, $A82A; {$ENDC} FUNCTION TextServiceEvent(ts: ComponentInstance; numOfEvents: INTEGER; VAR event: EventRecord): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0006, $0006, $7000, $A82A; {$ENDC} FUNCTION GetTextServiceMenu(ts: ComponentInstance; VAR serviceMenu: MenuHandle): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0004, $0007, $7000, $A82A; {$ENDC} FUNCTION TextServiceMenuSelect(ts: ComponentInstance; serviceMenu: MenuHandle; item: INTEGER): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0006, $0008, $7000, $A82A; {$ENDC} FUNCTION FixTextService(ts: ComponentInstance): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0000, $0009, $7000, $A82A; {$ENDC} FUNCTION SetTextServiceCursor(ts: ComponentInstance; mousePos: Point): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0004, $000A, $7000, $A82A; {$ENDC} FUNCTION HidePaletteWindows(ts: ComponentInstance): ComponentResult; {$IFC NOT GENERATINGCFM} INLINE $2F3C, $0000, $000B, $7000, $A82A; {$ENDC} FUNCTION GetServiceList(numOfInterface: INTEGER; VAR supportedInterfaceTypes: OSType; VAR serviceInfo: TextServiceListHandle; VAR seedValue: LONGINT): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7008, $AA54; {$ENDC} FUNCTION OpenTextService(idocID: TSMDocumentID; aComponent: Component; VAR aComponentInstance: ComponentInstance): OSErr; {$IFC NOT GENERATINGCFM} INLINE $7009, $AA54; {$ENDC} FUNCTION CloseTextService(idocID: TSMDocumentID; aComponentInstance: ComponentInstance): OSErr; {$IFC NOT GENERATINGCFM} INLINE $700A, $AA54; {$ENDC} {$ENDC} {$ALIGN RESET} {$POP} {$SETC UsingIncludes := TextServicesIncludes} {$ENDC} {__TEXTSERVICES__} {$IFC NOT UsingIncludes} END. {$ENDC}